Robot simulation device for generating motion path of robot

ABSTRACT

A robot simulation device for automatically generating a practical interference avoiding motion path, regardless of the level of skill of an operator. The device includes: a motion path obtaining part which obtains a first motion path by simulating a robot motion program; a teaching point specifying part which detects whether a robot interferes with a peripheral object on the first path, and specifies first and second teaching points immediately before and after the interference occurs, respectively; a motion path generating part which automatically inserts a third teaching point between the first and second points and generates second motion paths for avoiding the interference, based on a search direction and distance determined by a random number; an evaluating part which evaluates each second path based on a predetermined parameter; and a motion path selecting part which selects an optimum motion path from the second paths based on an evaluation result.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The preset invention relates to a robot simulation device for executingsimulation of a robot, and in particular, relates to a simulation devicefor generating a motion path by which the robot can be prevented frominterfering with peripheral equipment.

2. Description of the Related Art

In the prior art, a simulation device has been proposed, wherein amotion path of a robot is generated so that the robot can carry out apredetermined operation while avoiding interference with peripheralequipment. For example, JP 2003-091303 A discloses a method and a devicefor automatically setting a narrow area motion path along for pulling anend effector of a multi-joint robot from a working point on a workpiece,and a wide area motion path for moving between the working points.

Further, JP 2000-020117 A discloses a method and a device for planning amotion path of a multi-joint manipulator (robot), wherein an orientationpath of a robot hand is calculated by using a potential field method.

The potential method as described in JP 2000-020117 is a known algorithmused to generate a robot path, etc. Concretely, in the method, the spacewhere the robot is operated is divided into grids, and the energy ofeach grid is determined so that a grid where an obstacle exists has highenergy, and energy of the grid is lowered as the obstacle moves awayfrom. Then, by moving the robot from the current position to a gridhaving low energy, a path, by which the robot can avoid interferencewith the obstacle, is generated.

However, in general, when a complicated motion path (or a path foravoiding interference) is calculated by using the potential method,calculation for generating the path may be trapped in an endless loop,or an optimum solution may not be obtained due to a local solution. Insuch a case, an operator must change a calculation condition or adjust agenerated motion path, which is cumbersome and requires a high level ofskill.

SUMMARY OF THE INVENTION

Therefore, an object of the present invention is to provide a robotsimulation system capable of automatically generating a practical motionpath of a robot for avoiding interference, regardless of the level ofskill of an operator.

According to the present invention, there is provided a robot simulationdevice for carrying out a simulation of a robot by positioningthree-dimensional models of the robot and a peripheral object arrangedabout the robot in the same virtual space, the robot simulation devicecomprising: a motion path obtaining part which obtains a first motionpath of the robot by executing a simulation of a motion program of therobot; a teaching point specifying part which detects whetherinterference between the robot and the peripheral object occurs when therobot is moved along the first motion path, and specifies a firstteaching point corresponding to a teaching point immediately before theinterference occurs and a second teaching point corresponding to ateaching point immediately after the interference occurs; a motion pathgenerating part which automatically adds at least one third teachingpoint between the first and second teaching points and generatesdifferent second motion paths by which the interference between therobot and the peripheral object does not occur, the third teaching pointbeing separated from the first or second teaching point in a searchdirection determined by a random number by a search distance determinedby a random number; an evaluating part which evaluates each of thesecond motion paths based on at least one previously determinedparameter; and a motion path selecting part which selects an optimummotion path of the robot from the second motion paths based on anevaluation result by the evaluating part.

In a preferred embodiment, the motion path generating part data detectswhether the interference between the robot and the peripheral objectoccurs when the robot is moved along a motion path from the firstteaching point to one intermediate teaching point separated from thefirst teaching point in a search direction determined by a random numberby a search distance determined by a random number, and inserts theintermediate teaching point between the first and second teaching pointswhen the interference does not occur; and wherein the motion pathgenerating part detects whether the interference between the robot andthe peripheral object occurs when the robot is moved along a motion pathfrom the lastly inserted intermediate teaching point to the secondteaching point, and generates the second motion path by repeating aprocess for inserting a newly one intermediate teaching point separatedfrom the lastly inserted intermediate teaching point in a searchdirection determined by a random number by a search distance determinedby a random number, until the interference does not occur.

In this case, the motion path generating part may have at least one offunctions to: set an initial state in which a probability that a randomnumber for determining the search direction, by which a distance betweenthe intermediate teaching point and the second teaching point is smallerthan a distance between the first teaching point and the second teachingpoint, is selected, is higher than a probability that a random numberfor determining the search direction, by which the distance between theintermediate teaching point and the second teaching point is larger thanthe distance between the first teaching point and the second teachingpoint, is selected; and detect whether the interference between therobot and the peripheral object occurs in the motion path from the firstteaching point to the intermediate teaching point, and make a setting inwhich a probability that a search direction by which the interferencedoes not occur is selected in a next or later searching is higher than aprobability that a search direction by which the interference occurs isselected in the next or later searching.

Further, in this case, the robot simulation device may further comprisea teaching point deleting part which deletes a surplus teaching pointfrom the third teaching point, wherein the teaching point deleting partmay have at least one of functions to: store a movement direction and amovement distance of each of the inserted third teaching points, and,when the movement directions of two consecutive third teaching points onthe second motion path are the same, then combine the two consecutivethird teaching points into one new teaching point by adding the movementdistances of the two consecutive third teaching points; when movementdirections of two consecutive third teaching points on the second motionpath are opposed to each other, combine the two consecutive thirdteaching points into one new teaching point or delete the twoconsecutive third teaching points by canceling the movement distances ofthe two consecutive third teaching points each other; and detect whetherthe interference between the robot and the peripheral object in relationto a path connecting two arbitrary inconsecutive third teaching pointson the second motion path, and, when the interference does not occur,delete a teaching point between the two arbitrary inconsecutive thirdteaching points.

In a preferred embodiment, the at least one parameter includes: (a) amotion time of the robot; (b) a minimum distance between the robot andthe peripheral object; (c) an amount of heat generation of a motor fordriving the robot; (d) a lifetime of a speed reducer of the robot; and(e) a consumed power of the robot, and wherein the evaluating partselects a plurality of arbitrary parameters from the parameters (a) to(e) in relation to the second motion path and each third teaching pointincluded in the second motion path, and calculates an evaluation valueby previously weighting the selected parameters.

In a preferred embodiment, the robot simulation device further comprisesa teaching point adjusting part which adjusts the position of the thirdteaching point, wherein the teaching point adjusting part is configuredto: evaluate each third teaching point included in the second motionpath based on at least one predetermined parameter; repeatedly carry outa process for moving the position of the third teaching point to beadjusted by a small distance within a predetermined acceptable range anddetecting whether the interference between the robot and the peripheralobject occurs; and set a third teaching point having the highestevaluation mark among the third teaching points within the predeterminedacceptable range as an adjusted position of the third teaching point.

In a preferred embodiment, the teaching point generating part isconfigured to: generate a first relay point in the vicinity of the firstteaching point, where the robot does not interfere with the peripheralobject even when the robot is moved by a predetermined distance in anydirection; generate a second relay point in the vicinity of the secondteaching point, where the robot does not interfere with the peripheralobject even when the robot is moved by a predetermined distance in anydirection; and generate motion paths between the first teaching pointand the first relay point, between the first relay point and the secondrelay point, and between the second relay point and the second teachingpoint, respectively, by which the robot does not interfere with theperipheral object.

In a preferred embodiment, the motion path generating part is configuredto: generate a plurality of blocks by dividing a plurality of teachingpoints included in the first motion path at a position where theinterference between the robot and the peripheral object occurs; changean order of at least two of the blocks and/or reverse an order of theteaching points included in each block; and automatically generate amotion path between the last teaching point in the block and a leadingteaching point in the subsequent block, by which the robot does notinterfere with the peripheral object.

In a preferred embodiment, the robot simulation device is incorporatedin a controller for controlling an actual robot.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects, features and advantages of the presentinvention will be made more apparent by the following description of thepreferred embodiments thereof, with reference to the accompanyingdrawings, wherein:

FIG. 1 is a functional block diagram of a robot simulation deviceaccording to an embodiment of the present invention;

FIG. 2 is a flowchart showing an example of a procedure in the robotsimulation device of the invention;

FIG. 3 explains an example for generating an intermediate teaching pointfor avoiding interference;

FIG. 4 explains an example in which a relay teaching point is insertedinto a second motion path;

FIG. 5 shows an example of a row of teaching points included in a robotmotion path before an interference avoiding path is generated;

FIG. 6 shows an example in which the row of teaching points as shown inFIG. 5 are divided into a plurality of blocks, an order of some blocksis changed, and an order of the teaching points in each of some blocksis reversed; and

FIG. 7 shows an example in which an interference avoiding path isinserted into the row of teaching points as shown in FIG. 6.

DETAILED DESCRIPTIONS

FIG. 1 is a functional block diagram of a robot simulation device(hereinafter, also referred to as merely the simulation device) 10according to a preferred embodiment of the present invention. Simulationdevice 10 carries out a simulation of a robot 12 (normally, offline) bypositioning three-dimensional models of robot 12 and a peripheral object14 such as external equipment arranged about robot 12 in the samevirtual space. Simulation device 10 includes: a motion path obtainingpart 16 which obtains a first motion path of robot 12 by executing asimulation of a predetermined motion program of robot 12; a teachingpoint specifying part 18 which detects whether interference betweenrobot 12 and peripheral object 14 occurs when robot 12 is moved alongthe first motion path, and specifies a first teaching point(hereinafter, also referred to as a start point) corresponding to ateaching point immediately before the interference occurs and a secondteaching point (hereinafter, also referred to as an end point)corresponding to a teaching point immediately after the interferenceoccurs; a motion path generating part 20 which automatically adds orinserts at least one third teaching point between the first and secondteaching points and generates different second motion paths by which theinterference between the robot and the peripheral object does not occur,the third teaching point being separated from the first or secondteaching point in a search direction determined by a random number by asearch distance determined by a random number; an evaluating part 22which evaluates each of the second motion paths based on at least onepreviously determined parameter; and a motion path selecting part 24which selects an optimum motion path of robot 12 from the second motionpaths based on an evaluation result by evaluating part 22.

Optionally, simulation device 10 may include a displaying part 26 whichdisplays the virtual space, etc., where the three-dimensional models ofrobot 12 and peripheral object 14 are located, a teaching point deletingpart 28 which deletes a surplus teaching point from the third teachingpoint, and a teaching point adjusting part 30 which adjusts the positionof the third teaching point. The functions of deleting part 28 andadjusting part 30 are explained below.

Next, with reference to FIGS. 2 and 3, the procedure in simulationdevice 10 is explained. First, in step S1, the simulation of the motionprogram previously prepared for robot 12 is executed so as to obtainfirst motion path 32 of robot 12. The first motion path includes aplurality of teaching points for specifying the position and orientationof a representative point (for example, a tool center point) of robot 12based on the motion program. In the first motion path, the interferencebetween robot 12 and peripheral object 14 is not considered.

In the next step S2, it is detected whether the interference betweenrobot 12 and peripheral object 14 occurs when robot 12 is moved alongthe first motion path. Then, when the interference occurs, the firstteaching point (or the start point) corresponding to a teaching pointimmediately before the interference occurs and the second teaching point(or the end point) corresponding to a teaching point immediately afterthe interference occurs, are specified. In the example of FIG. 3, sincethe interference occurs between teaching points Pm and Pn included infirst motion path 32, teaching point Pm and teaching point Pn arespecified as the start point and the end point, respectively.

In the next step S3, at least one third teaching point is automaticallyadded between start point Pm and end point Pn so as to generate a secondmotion path 34 by which the interference between robot 12 and peripheralobject 14 does not occur, the third teaching point being separated frompoint Pm or Pn in a search direction determined by a random number by asearch distance determined by a random number. In the example of FIG. 3,it is detected whether the interference between robot 12 and peripheralobject 14 occurs when robot 12 is moved along a motion path 34 extendingfrom start point Pm to an intermediate teaching point P1 which isseparated from start point Pm in a search direction determined by arandom number by a search distance determined by a random number. Sincethe interference does not occur in motion path 34, intermediatedteaching point P1 is inserted between start point Pm and end point Pn.To the contrary, when the interference occurs in motion path 34,intermediate teaching point P1 is discarded and another intermediateteaching point is searched.

Next, it is detected whether the interference between robot 12 andperipheral object 14 occurs when the robot is moved along a motion path36 extending from the lastly inserted intermediate teaching point (inthis case, point P1) to end point Pn. In the illustrated example, sincethe interference occurs in motion path 36, a new intermediate teachingpoint P2, which is separated from intermediate teaching point P1 in asearch direction determined by a random number by a search distancedetermined by a random number, is calculated, and then, it is detectedwhether the interference occurs in a motion path 38 between intermediateteaching points P1 and P2. Since the interference does not occur inmotion path 38, intermediated teaching point P2 is inserted betweenintermediate teaching point P1 and end point Pn. On the contrary, whenthe interference occurs in motion path 38, intermediate teaching pointP2 is discarded and another intermediate teaching point is searched. Inaddition, when a motion path by which the interference does not occur isnot obtained even after search of point P2 is repeated a predeterminednumber of times, point P1 is discarded and point P1 is searched again.

The above procedure is repeated until the interference does not occur.In the illustrated example, since the interference does not occur in amotion path 40 extending from the lastly inserted intermediate teachingpoint (in this case, point P2) to end point Pn, a motion path from startpoint Pm to end point Pn via intermediate teaching points P1 and P2(i.e., a path including motion paths 34, 38 and 40) is generated as thesecond motion path by which the interference does not occur. Inaddition, the movement of the robot based on the search direction andthe search distance determined by a random number is not limited totranslational movement, and may include rotational movement.

As explained above, in the present invention, since the search directionand the search distance for calculating the intermediate teaching pointare randomly determined by using a random number, arithmetic processingis not trapped in an endless loop, nor outputs a local solution, wherebyan interference avoiding path can be obtained. Further, by using therandom number, the motion path can be generated without depending on thelevel of skill of the operator. In this regard, in order to moreeffectively generated the second motion path, the random number fordetermining the movement direction of the robot may be determined asbelow.

(i) As for the direction of translational movement of the robot, aninitial state may be set, wherein a probability that a random number fordetermining the search direction, by which the robot approaches the endpoint (i.e., the distance between the intermediate teaching point andthe end point is smaller than the distance between the start point andthe end point), is selected, is higher than a probability that a randomnumber for determining the search direction, by which the robot is awayfrom the end point (i.e., the distance between the intermediate teachingpoint and the end point is larger than the distance between the startpoint and the end point), is selected.

(ii) As for the new position (or the intermediate teaching point), thesearch direction (the direction of movement) of which is determined by arandom number, a probability that the search direction, by whichinterference between the robot and the peripheral object occurs betweenthe new position and the immediately before teaching point on the motionpath, is selected in the next or later search, is set to be higher thana probability that the search direction, by which the interferenceoccurs, is selected in the next or later search. In this regard, it ispreferable that a lower limit of the probability be predetermined so asto prevent the search direction by which the interference occurs frombeing never selected in the later procedure.

By means of at least one of the above items (i) and (ii), the motionpath of the robot (the second motion path), by which the interferencedoes not occur, may be obtained with a smaller number of trials.

In the second motion path generated in step S3, the third teachingpoints may include a surplus teaching point, such as a plurality ofconsecutive points having the same movement direction, a teaching pointhaving the movement direction opposite to the immediately beforeteaching point, and a teaching point returning to the previous teachingpoint after passing through some teaching points, etc. Therefore, instep S4, such a surplus teaching point is deleted from the inserted oradded intermediate teaching points as the third teaching points.Concretely, first, when the second motion path is to be generated, themovement direction and the movement distance of each third teachingpoint are stored in a suitable memory, etc. Next, the movementdirections of two consecutive third teaching points on the second motionpath are compared. If the movement directions are the same, then a newteaching point obtained by adding the movement distances of the twoteaching points is inserted, and the two consecutive third teachingpoints are deleted. In other words, the two consecutive third teachingpoints are combined into one new teaching point.

On the other hand, if the movement directions of two consecutive thirdteaching points on the second motion path are opposed to each other,then a new teaching point obtained by canceling the movement distancesof the two teaching points each other is inserted, and the twoconsecutive third teaching points are deleted. In other words, also inthis case, the two consecutive third teaching points are combined intoone new teaching point. In this regard, if the movement directions ofthe two teaching points are opposed to each other and the movementdistance thereof are the same, the robot is returned to the previousposition after passing through the two teaching points. In such a case,the two teaching points may be merely deleted.

In addition, when the robot does not interfere with the peripheralobject on a motion path (normally, a straight line) between arbitrarilyselected two inconsecutive teaching points, all of teaching pointsbetween the two inconsecutive teaching points may be deleted.

By virtue of the above procedure, the surplus teaching point can bedeleted from the third teaching points, whereby a more simple motionpath of the robot may be obtained. In addition, step S4 is optional,since the second motion path may not include the surplus teaching point.

As explained above, the second motion path may be generated withoutdepending on the level of skill of the operator, whereas the secondmotion path may include obviously unnecessary movement of the robot.Therefore, a simulation is executed in which the robot is moved alongeach of the obtained second motion paths, and each third teaching pointincluded in the second motion path is evaluated by means of evaluatingpart 22 based on a predetermined parameter (step S5). Then, a teachingpoint having a relatively low evaluation value (in particular, ateaching point having the lowest evaluation value) is adjusted so as toincrease the evaluation value thereof (step S6). By repeating suchprocedure, the second motion path may be more practical.

As the parameter (or evaluation item) for calculating the aboveevaluation value, following parameters may be used, for example. Thefollowing parameters may be calculated or estimated by executing thesimulation along the second motion path.

(a) a motion time of the robot

(b) a minimum distance between the robot and the peripheral object

(c) an amount of heat generation of a motor for driving the robot

(d) a lifetime of a speed reducer of the robot

(e) a consumed power of the robot

By using at least one of the above parameters, the evaluation value ofeach teaching point can be obtained based on the following criteria.Further, by integrating the evaluation values of the teaching pointsincluded in the same motion path, a total evaluation value of the motionpath can be obtained.

(a) The motion time of the robot is calculated, and the shorter themotion time is, the higher the evaluation value is.

(b) The minimum distance between the robot and the peripheral object iscalculated, and the longer the minimum distance is, the higher theevaluation value is.

(c) The amount of heat generation of the motor for driving the robot isestimated, and the smaller the amount of heat generation is, the higherthe evaluation value is.

(d) The lifetime of the speed reducer of the robot is estimated, and thelonger the lifetime is, the higher the evaluation value is.

(e) The consumed power of the robot, and the smaller the consumed poweris, the higher the evaluation value is.

Regarding above parameter (b), when the distance between the robot andthe peripheral object is too short, the interference easily occursbetween the actual robot and the actual peripheral object. On the otherhand, when the distance therebetween is too long, the evaluation valueregarding the other parameters tends to be decreased. Therefore, inrelation to parameter (b), a proper distance between the robot and theperipheral object may be predetermined (for example, 5 cm to 10 cm), andthe evaluation value may be increased as a difference between the properdistance and the minimum distance is decreased. Alternatively oradditionally, an upper limit of the distance between the robot and theperipheral object may be predetermined (for example, 50 cm to 100 cm),and the evaluation value may be constant when the minimum distanceexceeds the upper limit.

However, two or more of above parameters (a) to (e) can be used tocalculate the evaluation value. In this case, it is preferable topreviously classify the weight of each parameter, and to calculate theevaluation value based on the weighting.

As a method for adjusting the third teaching point in step S6, theposition of the teaching point may be changed. Concretely, the positionof the teaching point to be adjusted (i.e., the teaching point havingthe low or minimum evaluation value) is moved by a small distance so asto obtain a motion path of the robot between the moved teaching pointand teaching points before/after the moved teaching points. When theinterference between the robot and the peripheral object does not occuron the obtained motion path, the evaluation value of the new (moved)teaching point is calculated. This procedure is repeated a predeterminednumber of times within a predetermined acceptable range (for example, aregion in which the teaching points before/after the moved teachingpoints are not included), and the position having the highest evaluationvalue is determined as the position of an adjusted teaching point. Inthis regard, the above “small distance” may be properly determineddepending on the application of the robot and/or the distance betweeneach teaching point, etc. For example, the acceptable range may bedivided into a plurality of meshes, the length of each side of each meshbeing 1 mm to 5 mm, and the teaching point may be moved into each mesh.

Otherwise, the procedure for obtaining the evaluation value of the totalmotion path of the may be repeated, while obtaining the motion path ofthe robot by which the interference does not occur, deleting the surplusteaching point, and adjusting the teaching point. Then, by selecting themotion path having the highest evaluation value, a more practical motionpath may be obtained. In this case, the above procedure may be repeateda predetermined number of times, or may be repeated until the evaluationvalue reaches a predetermined value. In addition, steps S5 and S6 areoptional.

In the next step S7, the evaluation value of the generated second motionpath is calculated. The evaluation value of the motion path can becalculated by integrating the evaluation values of the teaching pointsincluded in the motion path.

In the next step S8, it is judged whether the generation of the secondmotion path is repeated a predetermined number of times. Although atleast two second motion paths are generated, it is preferable that asmany motion paths be generated as possible, in view of an arithmeticcapacity of the simulation device, etc.

Finally, in step S9, among the generated second motion paths, one motionpath having high (normally, the highest) evaluation value is selected asan optimum motion path (or an interference avoiding path) of the robot.As such, a practical interference avoiding path of the robot can beautomatically generated without depending on the level of skill of theoperator.

In addition, in generating the second motion path, when the distancebetween the start point and end point is relatively long, or when thestart and end point are positioned in recessed portions of differentperipheral objects, etc., an interference avoiding path from the startpoint to the end point may not be generated even if the method fordetermining the search direction and the search distance by using arandom number is repeated a practical number of times. Hereinafter, amethod for generating the interference avoiding path (or the secondmotion path) in such a case will be explained.

FIG. 4 shows an example in which start point Pm and end point Pn arepositioned in recessed portions of peripheral objects 14 a and 14 b,respectively. In this case, the second motion path may not be generatedeven if the method for determining the search direction and the searchdistance by using a random number is repeated a practical number oftimes. Then, first, in the vicinity of start point Pm, a first relayteaching point P3 is generated, by which the robot does not interferewith the peripheral object even when the robot is moved from point P3 inany direction by a certain distance. Similarly, in the vicinity of startpoint Pn, a second relay teaching point P4 is generated, by which therobot does not interfere with the peripheral object even when the robotis moved from point P4 in any direction by a certain distance.

For example, a concrete method for generating first relay teaching pointP3 includes the following steps of:

(i) generate a new position which is separate from start point Pm in adirection toward the origin position of the robot by an arbitrarydistance;

(ii) move the robot by a small distance within a designated acceptablerange (for example, a circle 42 having a diameter of 5 cm to 10 cm)about the new position, and detect the interference between the robotand the peripheral object; and

(iii) repeat (i) and (ii) until the robot does not interfere with theperipheral object. Similarly, for example, a concrete method forgenerating second relay teaching point P4 includes following steps of:

(iv) generate a new position which is separate from end point Pn in adirection toward the origin position of the robot by an arbitrarydistance;

(v) move the robot by a small distance within a designated acceptablerange (for example, a circle 44 having a diameter of 5 cm to 10 cm)about the new position, and detect the interference between the robotand the peripheral object; and

(vi) repeat (iv) and (v) until the robot does not interfere with theperipheral object.

Next, due to the similar procedure, motion paths 46, 48 and 50, by whichthe robot does not interfere with the peripheral object (or interferenceavoiding paths) are generated in relation to between start point Pm andrelay point P3 in the vicinity of the start point, between relay pointsP3 and P4, and between end point Pn and relay point P4 in the vicinityof the end point, respectively. Then, by combining motion paths 46 and48, and by combining motion paths 48 and 50, the second motion path canbe generated between start point Pm and end point Pn, by which the robotdoes not interfere with the peripheral object.

In addition, when the motion path for avoiding interference between therobot and the peripheral object cannot be generated even if the relaypoint generated by the above procedure is used, the movement directionfor generating the new position may be changed in at least one of abovesteps (i) and (iv). For example, in FIG. 4, the movement direction fromstart point Pm to relay point P3 and the movement direction from endpoint Pn to relay point P4 are opposed to each other.

FIGS. 5 to 7 show an example, as an application of the invention, inwhich teaching points are divided into a plurality of blocks and aninterference avoiding path is generated, when the interference occurs ata plurality of positions. In this case, as shown in FIG. 5, first motionpath 52 obtained by the simulation of the motion program includesteaching points A1, A2, A3, B1, B2, B3, C1, C2, C3, D1, D2, D3, E1, E2and E3, in this order. Further, the robot may interfere with theperipheral object at four positions, i.e., between teaching points A3and B1, between teaching points B3 and C1, between teaching points C3and D1, and between teaching points D3 and E.

Also in the example of FIG. 5, an interference avoiding path may begenerated by inserting respective third teaching points at the fourpositions, according to the procedure as explained above. However,another interference avoiding path having a higher evaluation value maybe generated, by dividing teaching points into a plurality of blockswith reference to a boundary where the interference occurs, and bychanging the order of the blocks and/or reversing the order of teachingpoints in each block.

Concretely, as shown in section (a) of FIG. 6, first, teaching pointsare divided into five blocks, i.e., a first block 54 including teachingpoints A1, A2, A3; a second block 56 including teaching points B1, B2,B3; a third block 58 including teaching points C1, C2, C3; a fourthblock 60 including teaching points D1, D2, D3; and a fifth block 62including teaching points E1, E2, E3.

Next, two arbitrary blocks are selected from the blocks obtained bydividing first motion path 52. In this case, second block 56 and fourthblock 60 are selected. Then, the order of the selected blocks (includingthe block therebetween) is changed. In other words, as shown in section(b) of FIG. 6, the order of the five blocks is changed as follows:

first block->fourth block->third block->second block->fifth block

Optionally, the teaching point in each block may be reversed. In theillustrated example, the order of the teaching points in each of thesecond, third and fourth blocks is reversed, whereby second block 56′,third block 58′ and fourth block 60′ are formed. In other words, insection (b) of FIG. 6, the order of teaching points from B1 to D3 isreversed.

In the configuration of the blocks in section (b) of FIG. 6, aninterference avoiding path is generated, according to the method asexplained above, in which the last teaching point in each block isdetermined as the start point, and the first teaching point in thesubsequent block is determined the end point. By virtue of this, asecond motion path from teaching point A1 to teaching point E3, as shownin FIG. 7.

By repeatedly changing the order of the blocks or reversing the order ofthe teaching points in each block, an optimum motion path can beobtained. Concretely, it is preferable to use an annealing method forobtaining the optimum motion path, as follows. First, after a motionpath by which the robot does not interference with the peripheral objectis obtained, a first evaluation value of the obtained motion path iscalculated according to the procedure as explained above. Next, a secondevaluation value is also calculated, in relation to a motion path afterthe order of the blocks is changed or the order of the teaching pointsin each block is reversed. When the second evaluation value is largerthan the first evaluation value, the latter result (or the motion pathhaving the second evaluation value) is used. In addition, even when thesecond evaluation value is smaller than the first evaluation value, thelatter result is used when the difference between the first and secondevaluation value is within a predetermined reference value.

By repeating the above comparison of the evaluation values while thereference value is sufficiently gradually decreased, a motion pathhaving a higher evaluation value can be obtained without falling into alocal solution. In addition, the interference avoiding path insertedbetween the blocks may be stored in a suitable memory. By using thestored interference avoiding path when inserting an interferenceavoiding path between the same blocks in the later procedure, thecalculation time may be reduced.

The robot simulation device according to the present invention may beincorporated in a robot controller for controlling an actual robot to besimulated. In other words, the robot controller may have the function ofthe robot simulation device. When the robot controller storesinformation regarding the shapes of the robot and the peripheral objectand the placement positions thereof, the robot controller may generatethe interference avoiding path as described above. Further, by virtue ofthis, the actual robot can be more smoothly operated based on the resultof the simulation.

According to the present invention, by generating the third teachingpoint for avoiding interference by using a random number, theinterference avoiding path can be obtained with a high probabilitywithout falling into a local solution. Further, since the interferenceavoiding path is automatically generated, a practical path of the robotfor avoiding interference can be generated, without depending on thelevel of skill of the operator.

While the invention has been described with reference to specificembodiments chosen for the purpose of illustration, it should beapparent that numerous modifications could be made thereto, by oneskilled in the art, without departing from the basic concept and scopeof the invention.

1. A robot simulation device for carrying out a simulation of a robot bypositioning three-dimensional models of the robot and a peripheralobject arranged about the robot in the same virtual space, the robotsimulation device comprising: a motion path obtaining part which obtainsa first motion path of the robot by executing a simulation of a motionprogram of the robot; a teaching point specifying part which detectswhether interference between the robot and the peripheral object occurswhen the robot is moved along the first motion path, and specifies afirst teaching point corresponding to a teaching point immediatelybefore the interference occurs and a second teaching point correspondingto a teaching point immediately after the interference occurs; a motionpath generating part which automatically adds at least one thirdteaching point between the first and second teaching points andgenerates different second motion paths by which the interferencebetween the robot and the peripheral object does not occur, the thirdteaching point being separated from the first or second teaching pointin a search direction determined by a random number by a search distancedetermined by a random number; an evaluating part which evaluates eachof the second motion paths based on at least one previously determinedparameter; and a motion path selecting part which selects an optimummotion path of the robot from the second motion paths based on anevaluation result by the evaluating part.
 2. The robot simulation deviceas set forth in claim 1, wherein the motion path generating part datadetects whether the interference between the robot and the peripheralobject occurs when the robot is moved along a motion path from the firstteaching point to one intermediate teaching point separated from thefirst teaching point in a search direction determined by a random numberby a search distance determined by a random number, and inserts theintermediate teaching point between the first and second teaching pointswhen the interference does not occur; and wherein the motion pathgenerating part detects whether the interference between the robot andthe peripheral object occurs when the robot is moved along a motion pathfrom the lastly inserted intermediate teaching point to the secondteaching point, and generates the second motion path by repeating aprocess for inserting a newly one intermediate teaching point separatedfrom the lastly inserted intermediate teaching point in a searchdirection determined by a random number by a search distance determinedby a random number, until the interference does not occur.
 3. The robotsimulation device as set forth in claim 2, wherein the motion pathgenerating part has at least one of functions to: set an initial statein which a probability that a random number for determining the searchdirection, by which a distance between the intermediate teaching pointand the second teaching point is smaller than a distance between thefirst teaching point and the second teaching point, is selected, ishigher than a probability that a random number for determining thesearch direction, by which the distance between the intermediateteaching point and the second teaching point is larger than the distancebetween the first teaching point and the second teaching point, isselected; and detect whether the interference between the robot and theperipheral object occurs in the motion path from the first teachingpoint to the intermediate teaching point, and make a setting in which aprobability that a search direction by which the interference does notoccur is selected in a next or later searching is higher than aprobability that a search direction by which the interference occurs isselected in the next or later searching.
 4. The robot simulation deviceas set forth in claim 2, further comprising a teaching point deletingpart which deletes a surplus teaching point from the third teachingpoint, wherein the teaching point deleting part has at least one offunctions to: store a movement direction and a movement distance of eachof the inserted third teaching points, and, when the movement directionsof two consecutive third teaching points on the second motion path arethe same, then combine the two consecutive third teaching points intoone new teaching point by adding the movement distances of the twoconsecutive third teaching points; when movement directions of twoconsecutive third teaching points on the second motion path are opposedto each other, combine the two consecutive third teaching points intoone new teaching point or delete the two consecutive third teachingpoints by canceling the movement distances of the two consecutive thirdteaching points each other; and detect whether the interference betweenthe robot and the peripheral object in relation to a path connecting twoarbitrary inconsecutive third teaching points on the second motion path,and, when the interference does not occur, delete a teaching pointbetween the two arbitrary inconsecutive third teaching points.
 5. Therobot simulation device as set forth in claim 1, wherein the at leastone parameter includes: (a) a motion time of the robot; (b) a minimumdistance between the robot and the peripheral object; (c) an amount ofheat generation of a motor for driving the robot; (d) a lifetime of aspeed reducer of the robot; and (e) a consumed power of the robot, andwherein the evaluating part selects a plurality of arbitrary parametersfrom the parameters (a) to (e) in relation to the second motion path andeach third teaching point included in the second motion path, andcalculates an evaluation value by previously weighting the selectedparameters.
 6. The robot simulation device as set forth in claim 1,further comprising a teaching point adjusting part which adjusts theposition of the third teaching point, wherein the teaching pointadjusting part is configured to: evaluate each third teaching pointincluded in the second motion path based on at least one predeterminedparameter; repeatedly carry out a process for moving the position of thethird teaching point to be adjusted by a small distance within apredetermined acceptable range and detecting whether the interferencebetween the robot and the peripheral object occurs; and set a thirdteaching point having the highest evaluation mark among the thirdteaching points within the predetermined acceptable range as an adjustedposition of the third teaching point.
 7. The robot simulation device asset forth in claim 1, wherein the teaching point generating part isconfigured to: generate a first relay point in the vicinity of the firstteaching point, where the robot does not interfere with the peripheralobject even when the robot is moved by a predetermined distance in anydirection; generate a second relay point in the vicinity of the secondteaching point, where the robot does not interfere with the peripheralobject even when the robot is moved by a predetermined distance in anydirection; and generate motion paths between the first teaching pointand the first relay point, between the first relay point and the secondrelay point, and between the second relay point and the second teachingpoint, respectively, by which the robot does not interfere with theperipheral object.
 8. The robot simulation device as set forth in claim1, wherein the motion path generating part is configured to: generate aplurality of blocks by dividing a plurality of teaching points includedin the first motion path at a position where the interference betweenthe robot and the peripheral object occurs; change an order of at leasttwo of the blocks and/or reverse an order of the teaching pointsincluded in each block; and automatically generate a motion path betweenthe last teaching point in the block and a leading teaching point in thesubsequent block, by which the robot does not interfere with theperipheral object.
 9. The robot simulation device as set forth in claim1, wherein the robot simulation device is incorporated in a controllerfor controlling an actual robot.